package com.chixing.day04.homework;

/**
 * @author Y2014188432
 */
public class OrderProcess {
    /**
     * 分割订单,以 1000 为基准
     * @param order 待分割的订单
     * @return 分割后的订单数组
     */
    public static Order[] process(Order order){
        // 设置单个订单最大数量
        int max = 1000;
        // 获取原订单的总数
        int sum = order.getNumber();
        // 获取订单 ID
        String id = order.getId();
        // 创建一个数组用来存放分割后的订单
        Order[] orders = new Order[new Double(Math.ceil(sum / 1000.0)).intValue()];
        // 设置存放数组位置的下标,从 0 开始
        int index = 0;
        // 当剩余分割订单数量小于等于 1000 时结束循环
        while (sum > max){
            // 剩余订单总量减少 1000
            sum -= 1000;
            // 创建新的订单对象,用来存放至订单数组
            orders[index ++] = new Order(id,1000);
        }
        // 剩余订单（数量已不大于 1000）存放到订单数组
        orders[index] = new Order(id,sum);
        // 返回订单数组
        return orders;
    }
}
